/*
 * Vent_Fpago.java
 *
 * Created on September 3, 2007, 9:31 AM
 */

package administrador;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Calendar;
import javax.swing.*;

/**
 *
 * @author  Maria Palacios
 */
public class Vent_Fpago extends javax.swing.JFrame {
FPagoAdmin fpa;
Facturacion f;
NotaCD nCD;
Nota_de_Venta notaVenta;
KardexInOut comprasVentas;
Conexion conexion;
int numFact;
String bandera="";
Usuario user;
//Guardo el Documento
String documento;
//String tipoDoc
char tipoDoc=' ';

    /** Creates new form Vent_Fpago */
    public Vent_Fpago(FPagoAdmin Entfpa,Facturacion fEnt,Conexion cEnt,int numFactE,String documento,String tipo,Usuario user) {
        this.user=user;
        bandera="Facturacion";
        this.documento=documento;
        initComponents();
        setBounds(200,100,340,385);
        setVisible(true);
        fpa=Entfpa;
        f=fEnt;
        conexion=cEnt;
        numFact=numFactE;
        tipoDoc='F';
        if(tipo.equals("tarjeta")){
            contenedor.setSelectedIndex(0);
        }else{
            contenedor.setSelectedIndex(1);
            llenarDatos();
        }
    }
    
    /** Creates new form Vent_Fpago */
    public Vent_Fpago(FPagoAdmin Entfpa,Nota_de_Venta notaVenta,Conexion cEnt,int numFactE,String documento,String tipo,Usuario user) {
        this.user=user;
        System.out.println("Nota de Venta===CuentaxCobrar");
        bandera="Nota de Venta";
        this.documento=documento;
        initComponents();
        setBounds(200,100,340,385);
        setVisible(true);
        fpa=Entfpa;
        this.notaVenta=notaVenta;
        conexion=cEnt;
        numFact=numFactE;
        tipoDoc='N';
        if(tipo.equals("tarjeta")){
            contenedor.setSelectedIndex(0);
        }else{
            contenedor.setSelectedIndex(1);
            System.out.println("Nota de Venta===Llena los Datos");
            llenarDatos();
        }
    }
    public Vent_Fpago(FPagoAdmin Entfpa,NotaCD fEnt,Conexion cEnt,int numFactE,String documento,String tipo,Usuario user) {
        this.user=user;
        bandera="NotaCD";
        this.documento=documento;
        initComponents();
        setBounds(200,100,340,385);
        setVisible(true);
        fpa=Entfpa;
        nCD=fEnt;
        conexion=cEnt;
        numFact=numFactE;
        if(tipo.equals("tarjeta")){
            contenedor.setSelectedIndex(0);
        }else{
            contenedor.setSelectedIndex(1);
            llenarDatos();
        }
    }
    
    public Vent_Fpago(KardexInOut comprasVentas,Conexion cEnt,String tipo,Usuario user) {
        this.comprasVentas=comprasVentas;
        this.user=user;
        initComponents();
        setBounds(200,100,340,385);
        setVisible(true);
        conexion=cEnt;
        bandera="ComprasVentas";
        numFact=Integer.parseInt(comprasVentas.lbl_fact.getText());
        if(tipo.equals("tarjeta")){
            contenedor.setSelectedIndex(0);
        }else{
            contenedor.setSelectedIndex(1);
            llenarDatos();
        }
    }
    
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */ 
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        buttonGroup1 = new javax.swing.ButtonGroup();
        jPanel1 = new javax.swing.JPanel();
        contenedor = new javax.swing.JTabbedPane();
        panel_Tar = new javax.swing.JPanel();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jLabel6 = new javax.swing.JLabel();
        cb_banco = new javax.swing.JComboBox();
        cb_tarjeta = new javax.swing.JComboBox();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        ck_interes = new javax.swing.JCheckBox();
        cb_plazo = new javax.swing.JComboBox();
        jLabel3 = new javax.swing.JLabel();
        r_diferido = new javax.swing.JRadioButton();
        r_corriente = new javax.swing.JRadioButton();
        jLabel2 = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        panel_cue = new javax.swing.JPanel();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jLabel9 = new javax.swing.JLabel();
        lbl_numCta = new javax.swing.JLabel();
        jLabel12 = new javax.swing.JLabel();
        jLabel13 = new javax.swing.JLabel();
        jLabel14 = new javax.swing.JLabel();
        txt_resp = new javax.swing.JTextField();
        lbl_fecha = new javax.swing.JLabel();
        txt_numFact = new javax.swing.JTextField();
        jLabel11 = new javax.swing.JLabel();
        jLabel16 = new javax.swing.JLabel();
        jLabel17 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        area = new javax.swing.JTextArea();
        bt_regCuent = new javax.swing.JButton();
        jButton4 = new javax.swing.JButton();
        txt_plazo = new javax.swing.JFormattedTextField();
        txt_valor = new javax.swing.JFormattedTextField();
        jLabel18 = new javax.swing.JLabel();
        jLabel10 = new javax.swing.JLabel();
        txt_pass = new javax.swing.JPasswordField();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Forma de Pago"));
        jPanel1.setLayout(null);

        panel_Tar.setLayout(null);

        jButton1.setText("Registrar");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        panel_Tar.add(jButton1);
        jButton1.setBounds(160, 230, 90, 23);

        jButton2.setText("Cancelar");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });
        panel_Tar.add(jButton2);
        jButton2.setBounds(60, 230, 90, 23);

        jLabel6.setFont(new java.awt.Font("Tahoma", 1, 11));
        jLabel6.setText("Tarjeta:");
        panel_Tar.add(jLabel6);
        jLabel6.setBounds(70, 190, 50, 20);

        cb_banco.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "ninguna", "visa", "mastercard", "dinners", "tarjeta de debito", "cuota facil" }));
        panel_Tar.add(cb_banco);
        cb_banco.setBounds(140, 190, 110, 20);

        cb_tarjeta.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Pichincha", "Guayaquil", "Pacifico", "Austro", "Bolivariano", "Produbanco", "Internacional", "Unibanco" }));
        panel_Tar.add(cb_tarjeta);
        cb_tarjeta.setBounds(140, 160, 110, 20);

        jLabel4.setFont(new java.awt.Font("Tahoma", 1, 11));
        jLabel4.setText("Banco:");
        panel_Tar.add(jLabel4);
        jLabel4.setBounds(70, 160, 50, 20);

        jLabel5.setFont(new java.awt.Font("Tahoma", 1, 11));
        jLabel5.setText("Con Interes:");
        panel_Tar.add(jLabel5);
        jLabel5.setBounds(50, 130, 80, 20);

        ck_interes.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
        ck_interes.setMargin(new java.awt.Insets(0, 0, 0, 0));
        panel_Tar.add(ck_interes);
        ck_interes.setBounds(140, 130, 13, 20);

        cb_plazo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "0 meses", "3 meses", "6 meses", "9 meses", "12 meses" }));
        panel_Tar.add(cb_plazo);
        cb_plazo.setBounds(140, 100, 110, 20);

        jLabel3.setFont(new java.awt.Font("Tahoma", 1, 11));
        jLabel3.setText("Plazo:");
        panel_Tar.add(jLabel3);
        jLabel3.setBounds(80, 100, 33, 20);

        buttonGroup1.add(r_diferido);
        r_diferido.setText("Diferido");
        r_diferido.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
        r_diferido.setMargin(new java.awt.Insets(0, 0, 0, 0));
        panel_Tar.add(r_diferido);
        r_diferido.setBounds(140, 70, 80, 15);

        buttonGroup1.add(r_corriente);
        r_corriente.setSelected(true);
        r_corriente.setText("Corriente");
        r_corriente.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
        r_corriente.setMargin(new java.awt.Insets(0, 0, 0, 0));
        panel_Tar.add(r_corriente);
        r_corriente.setBounds(140, 50, 80, 15);

        jLabel2.setFont(new java.awt.Font("Tahoma", 1, 11));
        jLabel2.setText("Tipo de Pago:");
        panel_Tar.add(jLabel2);
        jLabel2.setBounds(40, 50, 75, 14);

        jLabel1.setFont(new java.awt.Font("SansSerif", 1, 18));
        jLabel1.setForeground(new java.awt.Color(0, 51, 0));
        jLabel1.setText("Tarjeta de Credito");
        panel_Tar.add(jLabel1);
        jLabel1.setBounds(10, 10, 156, 24);

        contenedor.addTab("Tarjeta de Credito", panel_Tar);

        panel_cue.setLayout(null);

        jLabel7.setFont(new java.awt.Font("SansSerif", 1, 18));
        jLabel7.setForeground(new java.awt.Color(0, 51, 0));
        jLabel7.setText("Cuentas x Cobrar");
        panel_cue.add(jLabel7);
        jLabel7.setBounds(10, 0, 152, 24);

        jLabel8.setFont(new java.awt.Font("Tahoma", 1, 11));
        jLabel8.setText("Numero de Factura:");
        panel_cue.add(jLabel8);
        jLabel8.setBounds(10, 60, 120, 14);

        jLabel9.setText("Nro:");
        panel_cue.add(jLabel9);
        jLabel9.setBounds(230, 30, 30, 20);
        panel_cue.add(lbl_numCta);
        lbl_numCta.setBounds(260, 30, 30, 20);

        jLabel12.setFont(new java.awt.Font("Tahoma", 1, 11));
        jLabel12.setText("  Valor:");
        panel_cue.add(jLabel12);
        jLabel12.setBounds(80, 80, 60, 14);

        jLabel13.setFont(new java.awt.Font("Tahoma", 1, 11));
        jLabel13.setText(" Responsable:");
        panel_cue.add(jLabel13);
        jLabel13.setBounds(40, 100, 90, 20);

        jLabel14.setFont(new java.awt.Font("Tahoma", 1, 11));
        jLabel14.setText("Fecha:");
        panel_cue.add(jLabel14);
        jLabel14.setBounds(10, 30, 60, 20);

        txt_resp.setEditable(false);
        txt_resp.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txt_respActionPerformed(evt);
            }
        });
        panel_cue.add(txt_resp);
        txt_resp.setBounds(130, 100, 160, 20);
        panel_cue.add(lbl_fecha);
        lbl_fecha.setBounds(50, 30, 60, 20);

        txt_numFact.setEditable(false);
        txt_numFact.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txt_numFactActionPerformed(evt);
            }
        });
        panel_cue.add(txt_numFact);
        txt_numFact.setBounds(130, 60, 160, 20);

        jLabel11.setFont(new java.awt.Font("Tahoma", 1, 11));
        jLabel11.setText(" Observaciones:");
        panel_cue.add(jLabel11);
        jLabel11.setBounds(20, 170, 100, 20);

        jLabel16.setText(" Meses");
        panel_cue.add(jLabel16);
        jLabel16.setBounds(220, 140, 40, 20);

        jLabel17.setFont(new java.awt.Font("Tahoma", 1, 11));
        jLabel17.setText("Clave Cambio Resp:");
        panel_cue.add(jLabel17);
        jLabel17.setBounds(10, 120, 120, 20);

        area.setColumns(20);
        area.setRows(5);
        jScrollPane1.setViewportView(area);

        panel_cue.add(jScrollPane1);
        jScrollPane1.setBounds(20, 190, 170, 100);

        bt_regCuent.setText("Registrar");
        bt_regCuent.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bt_regCuentActionPerformed(evt);
            }
        });
        panel_cue.add(bt_regCuent);
        bt_regCuent.setBounds(200, 190, 90, 50);

        jButton4.setText("Limpiar");
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });
        panel_cue.add(jButton4);
        jButton4.setBounds(200, 250, 90, 23);
        panel_cue.add(txt_plazo);
        txt_plazo.setBounds(130, 140, 90, 20);

        txt_valor.setEditable(false);
        txt_valor.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter(new java.text.DecimalFormat("#0.00"))));
        panel_cue.add(txt_valor);
        txt_valor.setBounds(130, 80, 110, 20);

        jLabel18.setFont(new java.awt.Font("Tahoma", 1, 11));
        jLabel18.setText("  Plazo:");
        panel_cue.add(jLabel18);
        jLabel18.setBounds(80, 140, 50, 20);

        jLabel10.setText("(Opcional)");
        panel_cue.add(jLabel10);
        jLabel10.setBounds(220, 120, 60, 20);

        txt_pass.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txt_passActionPerformed(evt);
            }
        });
        txt_pass.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                txt_passKeyTyped(evt);
            }
        });
        panel_cue.add(txt_pass);
        txt_pass.setBounds(130, 120, 90, 20);

        contenedor.addTab("Cuenta por Cobrar", panel_cue);

        jPanel1.add(contenedor);
        contenedor.setBounds(10, 20, 310, 330);

        getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
// TODO add your handling code here:
        if(bandera.equals("Facturacion")) {  
        registroPago() ;
        f.registrarFactura(documento,1,0);
        fpa.dispose();
        this.dispose();
        }
        
        if(bandera.equals("Nota de Venta")) {  
        registroPago() ;
        notaVenta.registrarFactura(documento,1,0);
        fpa.dispose();
        this.dispose();
        }
        
    }//GEN-LAST:event_jButton1ActionPerformed
public void registroPago(){

//Realizo el Registro del Pago:
//Saco tipo de pago; 
    int tipo=0;
    //Saco los Datos:
    if(r_corriente.isSelected()){
        //Selecciona Pago Corriente:
        tipo=0;
    }else{
        //Selecciona Diferido
        tipo=1;
    }
//Saco Plazos:
     String plazo=cb_plazo.getModel().getElementAt(cb_plazo.getSelectedIndex()).toString();
     
     
//Saco si es con Interes:
    int interes=0;
    if(this.ck_interes.isSelected()){
        interes=1;
    }
//Saco la tarjeta:
    String tarjeta=cb_tarjeta.getModel().getElementAt(cb_tarjeta.getSelectedIndex()).toString()+" ( "+cb_banco.getModel().getElementAt(cb_banco.getSelectedIndex()).toString()+" ) ";
    
System.out.println("La insercion seria: "+tipo+" "+plazo+" "+interes+" "+tarjeta);    
    
//Realizo el Ingreso:
conexion.insertarDatos("Insert into fpago values (null,"+numFact+","+tipo+",'"+plazo+"',"+interes+",'"+tarjeta+"',0,'"+tipoDoc+"')");

}

public void llenarDatos(){
    //Cargo el responzable de esta accion:
    txt_resp.setText(user.nombre);
    
    
    if(bandera.equals("Facturacion")){
    //Encuentro el numero de Cuenta para este cliente
    String cod_cliente=f.txt_id.getText();
    ResultSet respu=conexion.consultarBase("SELECT MAX(cod_cuentasCobrar) FROM cuentaspendientes where cod_cliente like '"+cod_cliente+"';");
    int numCuenta=0;
    try {
        respu.beforeFirst();
        respu.next();
        numCuenta=respu.getInt(1);
        
    } catch (SQLException esql) {}
    numCuenta=numCuenta+1;
    lbl_numCta.setText(String.valueOf(numCuenta));
    //Saco la fecha:
    String fecha=new java.sql.Date(System.currentTimeMillis()).toString();
    lbl_fecha.setText(fecha);
    //Numero Factura:
    String numFact=f.lbl_fact.getText();
    this.txt_numFact.setText(numFact);
    //Saco valor de la compra
    txt_valor.setText(f.txt_tot.getText());
    }
    
    if(bandera.equals("NotaCD")){
    //Encuentro el numero de Cuenta para este cliente
    String cod_cliente=nCD.txt_id.getText();
    ResultSet respu=conexion.consultarBase("SELECT MAX(cod_cuentasCobrar) FROM cuentaspendientes where cod_cliente like '"+cod_cliente+"';");
    int numCuenta=0;
    try {
        respu.beforeFirst();
        respu.next();
        numCuenta=respu.getInt(1);
        
    } catch (SQLException esql) {}
    numCuenta=numCuenta+1;
    lbl_numCta.setText(String.valueOf(numCuenta));
    //Saco la fecha:
    String fecha=new java.sql.Date(System.currentTimeMillis()).toString();
    lbl_fecha.setText(fecha);
    //Numero Factura:
    String numFact=nCD.lbl_fact.getText();
    this.txt_numFact.setText(numFact);
    //Saco valor de la compra
    txt_valor.setText(nCD.txt_tot.getText());
    }
    
    if(bandera.equals("Nota de Venta")){
    //Encuentro el numero de Cuenta para este cliente
    String cod_cliente=notaVenta.txt_id.getText();
    ResultSet respu=conexion.consultarBase("SELECT MAX(cod_cuentasCobrar) FROM cuentaspendientes where cod_cliente like '"+cod_cliente+"';");
    int numCuenta=0;
    try {
        respu.beforeFirst();
        respu.next();
        numCuenta=respu.getInt(1);
        
    } catch (SQLException esql) {}
    numCuenta=numCuenta+1;
    lbl_numCta.setText(String.valueOf(numCuenta));
    //Saco la fecha:
    String fecha=new java.sql.Date(System.currentTimeMillis()).toString();
    lbl_fecha.setText(fecha);
    //Numero Factura:
    String numFact=notaVenta.lbl_fact.getText();
    this.txt_numFact.setText(numFact);
    //Saco valor de la compra
    txt_valor.setText(notaVenta.txt_tot.getText());
    }
    
    
    if(bandera.equals("ComprasVentas")){
    //Encuentro el numero de Cuenta para este cliente
    String cod_cliente=comprasVentas.txt_id.getText();
    ResultSet respu=conexion.consultarBase("SELECT MAX(cod_cuentasCobrar) FROM cuentaspendientes where cod_cliente like '"+cod_cliente+"';");
    int numCuenta=0;
    try {
        respu.beforeFirst();
        respu.next();
        numCuenta=respu.getInt(1);
        
    } catch (SQLException esql) {}
    numCuenta=numCuenta+1;
    lbl_numCta.setText(String.valueOf(numCuenta));
    //Saco la fecha:
    String fecha=new java.sql.Date(System.currentTimeMillis()).toString();
    lbl_fecha.setText(fecha);
    //Numero Factura:
    String numFact=comprasVentas.lbl_fact.getText();
    this.txt_numFact.setText(numFact);
    //Saco valor de la compra
    txt_valor.setText(comprasVentas.txt_tot.getText());
    }
    
}
    
    
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
// TODO add your handling code here:
        this.dispose();
    }//GEN-LAST:event_jButton2ActionPerformed

private void txt_respActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txt_respActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_txt_respActionPerformed

private void txt_numFactActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txt_numFactActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_txt_numFactActionPerformed

private void bt_regCuentActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bt_regCuentActionPerformed
// TODO add your handling code here:
    //Valido que los campos esten correctamente llenados:
    String r=txt_resp.getText().toString();
    String p=txt_plazo.getText().toString();
    if(r.replaceAll(" ", "").equals("")||p.replaceAll(" ", "").equals("")){
    JOptionPane.showMessageDialog(this,"No se han llenado algunos campos importantes.","Informacion",JOptionPane.INFORMATION_MESSAGE);
    }else{
    registrar();
    }
    
    
    
}//GEN-LAST:event_bt_regCuentActionPerformed
public void registrar(){
if(bandera.equals("Facturacion")){
    //Obtengo Datos de Insercion para Insercion en Cuentas:
    String codCuenta=lbl_numCta.getText();
    String codClient=f.txt_id.getText();
    String numFac="F"+txt_numFact.getText();
    String responsa=txt_resp.getText();
    String fecha=lbl_fecha.getText();
    String  valor=txt_valor.getText();
    String cant=txt_plazo.getText();
    String obser=area.getText();
    String fecha_max=calculaFechaMax(Integer.parseInt(cant));
    
    conexion.insertarDatos("insert into cuentaspendientes values("+codCuenta+",'"+codClient+"','"+numFac+"','"+responsa+"','"+fecha+"',"+valor+","+cant+",'"+obser+"','falta','"+fecha_max+"','xcobrar');");
    
    //Actualizo saldo deudor del cliente:
    double antiguo=0;
    double nuevo=Double.parseDouble(valor);
    double saldo=0;
    ResultSet resp=conexion.consultarBase("SELECT saldo_deudor FROM cliente where cod_cliente like '"+codClient+"';");
    try{
    resp.beforeFirst();
    resp.next();
    antiguo=resp.getDouble(1);
    saldo=antiguo+nuevo;}
    catch(SQLException sqe){
    System.err.println(sqe.toString());
    }
    conexion.actualizarBase("update cliente set saldo_deudor="+saldo+" where cod_cliente like '"+codClient+"';");


    //Pregunto si desea Subir la factura a la Web:
    int opccion=0;
    opccion=JOptionPane.showConfirmDialog(this,"Desea Cargar esta Factura a la Web?","Alerta",0);
    if(opccion==0){
        f.registrarFactWeb();

    }

    //Registro la Compra:
    f.registrarFactura(documento,1,1);

    


    
    fpa.dispose();
    this.dispose();
}

if(bandera.equals("Nota de Venta")){
    //Obtengo Datos de Insercion para Insercion en Cuentas:
    String codCuenta=lbl_numCta.getText();
    String codClient=notaVenta.txt_id.getText();
    String numFac="N"+txt_numFact.getText();
    String responsa=txt_resp.getText();
    String fecha=lbl_fecha.getText();
    String  valor=txt_valor.getText();
    String cant=txt_plazo.getText();
    String obser=area.getText();
    String fecha_max=calculaFechaMax(Integer.parseInt(cant));
    
    conexion.insertarDatos("insert into cuentaspendientes values("+codCuenta+",'"+codClient+"','"+numFac+"','"+responsa+"','"+fecha+"',"+valor+","+cant+",'"+obser+"','falta','"+fecha_max+"','xcobrar');");
    
    //Actualizo saldo deudor del cliente:
    double antiguo=0;
    double nuevo=Double.parseDouble(valor);
    double saldo=0;
    ResultSet resp=conexion.consultarBase("SELECT saldo_deudor FROM cliente where cod_cliente like '"+codClient+"';");
    try{
    resp.beforeFirst();
    resp.next();
    antiguo=resp.getDouble(1);
    saldo=antiguo+nuevo;}
    catch(SQLException sqe){
    System.err.println(sqe.toString());
    }
    conexion.actualizarBase("update cliente set saldo_deudor="+saldo+" where cod_cliente like '"+codClient+"';");
    
    //Registro la Compra:
    notaVenta.registrarFactura(documento,1,1);
    
    fpa.dispose();
    this.dispose();
}

if(bandera.equals("NotaCD")){
    //Obtengo Datos de Insercion para Insercion en Cuentas:
    String codCuenta=lbl_numCta.getText();
    String codClient=nCD.txt_id.getText();
    
    String responsa=txt_resp.getText();
    String fecha=lbl_fecha.getText();
    String  valor=txt_valor.getText();
    String cant=txt_plazo.getText();
    String obser=area.getText();
    String fecha_max=calculaFechaMax(Integer.parseInt(cant));
    
    String numFac;
    if(nCD.Etiqueta.getText().equals("Nota de Credito")){
    numFac="C"+txt_numFact.getText();
    }else{
    numFac="D"+txt_numFact.getText();
    }
    
    
    
    conexion.insertarDatos("insert into cuentaspendientes values("+codCuenta+",'"+codClient+"','"+numFac+"','"+responsa+"','"+fecha+"',"+valor+","+cant+",'"+obser+"','falta','"+fecha_max+"','xcobrar');");
    
    //Actualizo saldo deudor del cliente:
    double antiguo=0;
    double nuevo=Double.parseDouble(valor);
    double saldo=0;
    ResultSet resp=conexion.consultarBase("SELECT saldo_deudor FROM cliente where cod_cliente like '"+codClient+"';");
    try{
    resp.beforeFirst();
    resp.next();
    antiguo=resp.getDouble(1);
    saldo=antiguo+nuevo;}
    catch(SQLException sqe){
    System.err.println(sqe.toString());
    }
    conexion.actualizarBase("update cliente set saldo_deudor="+saldo+" where cod_cliente like '"+codClient+"';");
    
     
    fpa.dispose();
    this.dispose();
}

if(bandera.equals("ComprasVentas")){
    //Obtengo Datos de Insercion para Insercion en Cuentas:
    String codCuenta=lbl_numCta.getText();
    String codClient=comprasVentas.txt_id.getText();
    String responsa=txt_resp.getText();
    String fecha=lbl_fecha.getText();
    String  valor=txt_valor.getText();
    String cant=txt_plazo.getText();
    String obser=area.getText();
    String fecha_max=calculaFechaMax(Integer.parseInt(cant));
    
    String numFac;
    
    if(comprasVentas.Etiqueta.getText().equals("Factura de Compras")){
    numFac="E"+txt_numFact.getText();
    }else{
    numFac="S"+txt_numFact.getText();
    }
    
    conexion.insertarDatos("insert into cuentaspendientes values("+codCuenta+",'"+codClient+"','"+numFac+"','"+responsa+"','"+fecha+"',"+valor+","+cant+",'"+obser+"','falta','"+fecha_max+"','xcobrar');");
    
    //Actualizo saldo deudor del cliente:
    double antiguo=0;
    double nuevo=Double.parseDouble(valor);
    double saldo=0;
    ResultSet resp=conexion.consultarBase("SELECT saldo_deudor FROM cliente where cod_cliente like '"+codClient+"';");
    try{
    resp.beforeFirst();
    resp.next();
    antiguo=resp.getDouble(1);
    saldo=antiguo+nuevo;}
    catch(SQLException sqe){
    System.err.println(sqe.toString());
    }
    conexion.actualizarBase("update cliente set saldo_deudor="+saldo+" where cod_cliente like '"+codClient+"';");
    
    //Registro la Compra:
    comprasVentas.registrarFactura(documento,"S",0);
    this.dispose();
}



}


public String calculaFechaMax(int meses){
int diasPlazo=meses*31;
String fechaMax="";
//Crep el calendario:
Calendar c1 = Calendar.getInstance();
//Sumo los dias:
c1.add(Calendar.DATE,diasPlazo);

//Establesco el formato final
String DATE_FORMAT = "yyyy-MM-dd";
java.text.SimpleDateFormat sdf =  new java.text.SimpleDateFormat(DATE_FORMAT);
fechaMax=sdf.format(c1.getTime());		
System.out.println("La fecha maxima es:"+fechaMax);
return fechaMax;
}

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
// TODO add your handling code here:
    int opccion=0;
    opccion=JOptionPane.showConfirmDialog(this,"Seguro desea borrar el contenido para una entrada nueva?","Alerta",0);
    if(opccion==0){
        llenarDatos();
        txt_resp.setText("");
        txt_plazo.setText("");
        area.setText("");
    }
}//GEN-LAST:event_jButton4ActionPerformed

private void txt_passActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txt_passActionPerformed
// TODO add your handling code here:
    
    
}//GEN-LAST:event_txt_passActionPerformed

private void txt_passKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txt_passKeyTyped
// TODO add your handling code here:
      int presiona=evt.getKeyChar();
        if(presiona==10){
            String clave=txt_pass.getText();
            ResultSet resp=conexion.consultarBase("select * from usuario where clave='"+clave+"'");
            try {
                resp.beforeFirst();
                resp.next();
                String nombre=resp.getString(2);
                txt_resp.setText(nombre);
                
            } catch (Exception ex) {
                JOptionPane.showMessageDialog(this,"Hay un error en la clave","Informacion",JOptionPane.INFORMATION_MESSAGE);
            }
            
        }
    
}//GEN-LAST:event_txt_passKeyTyped
    
   
    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JTextArea area;
    private javax.swing.JButton bt_regCuent;
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.JComboBox cb_banco;
    private javax.swing.JComboBox cb_plazo;
    private javax.swing.JComboBox cb_tarjeta;
    private javax.swing.JCheckBox ck_interes;
    private javax.swing.JTabbedPane contenedor;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton4;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel16;
    private javax.swing.JLabel jLabel17;
    private javax.swing.JLabel jLabel18;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JLabel lbl_fecha;
    private javax.swing.JLabel lbl_numCta;
    private javax.swing.JPanel panel_Tar;
    private javax.swing.JPanel panel_cue;
    private javax.swing.JRadioButton r_corriente;
    private javax.swing.JRadioButton r_diferido;
    private javax.swing.JTextField txt_numFact;
    private javax.swing.JPasswordField txt_pass;
    private javax.swing.JFormattedTextField txt_plazo;
    private javax.swing.JTextField txt_resp;
    private javax.swing.JFormattedTextField txt_valor;
    // End of variables declaration//GEN-END:variables
    
}
